# 使用官方 Node.js 镜像作为基础镜像
FROM node:22.14.0-alpine

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json /app

# 安装依赖
# RUN npm install --production --registry=https://registry.npmmirror.com 
RUN npm install pnpm -g --registry https://registry.npmmirror.com
RUN pnpm install --production

# 复制项目文件
COPY . /app

# 数据库迁移（如果数据库结构不需要改变就注释, 初始化，migrations 文件夹必须清空）
# 直接写这里会报错 SyntaxError: Unexpected strict mode reserved word 

# RUN npm run migration:create src/migrations/init
# RUN npm run migration:generate src/migrations/update
# RUN npm run migration:run


# 暴露目录
# VOLUME [ "/app/logs" ]

# 暴露端口（Express 应用监听的端口）
EXPOSE 5012

# 启动应用
CMD ["npm", "run", "start:prod"]


# 项目根目录，构建镜像
# docker build -t lzo-admin-nestjs .

# 创建容器
# docker run -d --name adminestjs --restart always -p 5012:5012 -v /log/lzo_admin_nestjs/logs:/app/logs  lzo-admin-nestjs